from rest_framework import serializers
from rest_framework_jwt.serializers import JSONWebTokenSerializer


class MyJSONWebTokenSerializer(JSONWebTokenSerializer):

    def validate(self, attrs):
        # 1. 调用父类的validate方法判断是不是合法，如果不合法就直接抛出错误了
        # 2. 自己判断用户是不是管理员，如果时管理员才可以正常登录，否则就抛出权限验证失败的异常
        ret = super(MyJSONWebTokenSerializer, self).validate(attrs)
        user = ret.get('user')
        if not user.is_staff:
            raise serializers.ValidationError('非管理员不能登录管理后台')
        return ret
